#include <iostream>
using namespace std;
using int64 = long long;

// 扩展欧几里得：返回 gcd(a,b)，并使得 ax + by = gcd(a,b)
static int64 exgcd(int64 a, int64 b, int64 &x, int64 &y) {
    if (b == 0) { x = 1; y = 0; return a; }
    int64 x1, y1;
    int64 g = exgcd(b, a % b, x1, y1);
    x = y1;
    y = x1 - (a / b) * y1;
    return g;
}

// 在 gcd(a,mod)=1 时，返回 a 在模 mod 下的逆元（0..mod-1）
static int64 modinv(int64 a, int64 mod) {
    int64 x, y;
    int64 g = exgcd(a, mod, x, y);
    // 题目中我们会先约分，保证 gcd(a,mod)=1
    (void)g;
    x %= mod;
    if (x < 0) x += mod;
    return x;
}
int gcd(int a, int b){
    if(a < 0 || b < 0) return -1;
    if(b == 0) return a;
    return gcd(b, a%b);
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    long long a, b, c;
    if (!(cin >> a >> b >> c)) return 0;

    long long d = gcd(a, b);
    if (c % d != 0) {                 // 必要条件不满足，无解
        cout << 0 << '\n';
        return 0;
    }

    // 约分
    long long a1 = a / d, b1 = b / d, c1 = c / d;

    // x ≡ c1 * inv(a1) (mod b1)
    long long inv_a1 = modinv(a1 % b1, b1);
    long long x0 = ( (__int128)c1 * inv_a1 ) % b1;  // 防止中间乘法溢出（稳一点）
    if (x0 < 0) x0 += b1;

    // 由于 y = (c1 - a1*x)/b1 >= 0，需要 x <= floor(c1/a1)
    long long xmax = c1 / a1;  // floor

    long long ans = 0;
    if (x0 <= xmax) {
        ans = (xmax - x0) / b1 + 1;   // k 从 0 到 floor((xmax - x0)/b1)
    } else {
        ans = 0;
    }

    cout << ans << '\n';
    return 0;
}